#ifndef _CHARACTER_H_
#define _CHARACTER_H_

#include "point.h"
#include "model.h"
#include "maze.h"
#include "math.h"

enum Movement {FRONT, LEFT, RIGHT, BACK, MOVES};

class Character
{
private:
  int x_, z_;
  Direction orientation_;
  Model *model_;
public:
  Character(int x, int z, Model &model);
  void Set(int x, int z, Direction orientation);
  Point Move(Movement m);
  void Undo(Movement m);
  int GetX();
  int GetZ();
  Point GetPosition();
  Direction GetOrientation();
  void Render(int rotation=0);
  void PickRender(GLubyte color[]);
};

#endif // CHARACTER_H
